﻿using System;
using System.Collections.Generic;
using System.Web;

namespace ControlCompetenciaNamespace
{

    public struct ItemValue
    {
        public string Value;
        public string Text;
    }

    #region Enums
    public enum Monedas
    {
        PESOS,
        DOLARES,
        NO_DISPONIBLE,
        Otro
    }

    public enum EstadoProducto
    {
        NUEVO,
        USADO,
        INEXISTENTE,
        INACTIVO
    }

    public enum EstadoUsuario
    {
        ACTIVO,
        PENDIENTE,
        INHABILITADO
    }

    public enum Calificaciones
    {
        POSITIVA,
        NEGATIVA,
        NEUTRAL
    }

    public enum CantidadCalificaciones
    {
        COMPLETO,
        ULTIMOS_2_MESES
    }
    #endregion

    #region Clases
    public class Competidor
    {
        private string idml;
        private string nickname;
        private string idrubro;
        private string descripcion;
        private string link;
        private Estadistica stat;

        public Competidor()
        {
        }

        public string IdML
        {
            get { return idml; }
            set { idml = value; }
        }
        public string Nickname
        {
            get { return nickname; }
            set { nickname = value; }
        }
        public string IdRubro
        {
            get { return idrubro; }
            set { idrubro = value; }
        }
        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
        public string Link
        {
            get { return link; }
            set { link = value; }
        }
        public Estadistica refrescarEstadisticas()
        {
            stat = ControlCompetidorBO.getEstadisticas(this.IdML);
            return stat;
        }
        public Estadistica getEstadisticas()
        {
            return stat;
        }
    }

    public class Rubro
    {
        private string id;
        private string nombre;

        public Rubro()
        {
        }

        public string Id
        {
            get { return id; }
            set { id = value; }
        }
        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
    }

    public class Estadistica
    {
        private int cantpublicaciones;
        private int cantcalificaciones;
        private EstadoUsuario estado;
        private string txtotal;
        private string txcompletadas;
        private string txcanceladas;
        private string rankpositivo;
        private string ranknegativo;
        private string rankneutro;

        public Estadistica()
        {
        }

        public int CantPublicaciones
        {
            get { return cantpublicaciones; }
            set { cantpublicaciones = value; }
        }
        public int CantCalificaciones
        {
            get { return cantcalificaciones; }
            set { cantcalificaciones = value; }
        }
        public EstadoUsuario Estado
        {
            get { return estado; }
            set { estado = value; }
        }
        public string TxTotal
        {
            get { return txtotal; }
            set { txtotal = value; }
        }
        public string TxCompletadas
        {
            get { return txcompletadas; }
            set { txcompletadas = value; }
        }
        public string TxCanceladas
        {
            get { return txcanceladas; }
            set { txcanceladas = value; }
        }
        public string RankPositivo
        {
            get { return rankpositivo; }
            set { rankpositivo = value; }
        }
        public string RankNegativo
        {
            get { return ranknegativo; }
            set { ranknegativo = value; }
        }
        public string RankNeutro
        {
            get { return rankneutro; }
            set { rankneutro = value; }
        }
    }

    public class Producto
    {
        private string idpublicacion;
        private string idcompetidor;
        private string link;
        private string titulo;
        private Monedas moneda;
        private string precio;
        private string cantvendido;
        private EstadoProducto estado;
        private string fechainicio;
        private string fechafin;

        public Producto()
        {
        }

        public string IdPublicacion
        {
            get { return idpublicacion; }
            set { idpublicacion = value; }
        }

        public string IdCompetidor
        {
            get { return idcompetidor; }
            set { idcompetidor = value; }
        }

        public string Link
        {
            get { return link; }
            set { link = value; }
        }

        public string Titulo
        {
            get { return titulo; }
            set { titulo = value; }
        }

        public Monedas Moneda
        {
            get { return moneda; }
            set { moneda = value; }
        }

        public string Precio
        {
            get { return precio; }
            set { precio = value; }
        }

        public string CantVendido
        {
            get { return cantvendido; }
            set { cantvendido = value; }
        }

        public EstadoProducto Estado
        {
            get { return estado; }
            set { estado = value; }
        }

        public string FechaInicio
        {
            get { return fechainicio; }
            set { fechainicio = value; }
        }

        public string FechaFin
        {
            get { return fechafin; }
            set { fechafin = value; }
        }

    }

    public class ProductoCambio
    {
        private Producto prod;
        private Monedas monedaanterior;
        private string precioanterior;

        public ProductoCambio()
        {
        }

        public Producto Prod
        {
            get { return prod; }
            set { prod = value; }
        }

        public Monedas MonedaAnterior
        {
            get { return monedaanterior; }
            set { monedaanterior = value; }
        }

        public string PrecioAnterior
        {
            get { return precioanterior; }
            set { precioanterior = value; }
        }
    }

    public class Calificacion
    {
        private string fecha;
        private Producto prod;
        private string nickusuario;
        private string linkusuario;
        private Calificaciones calificacion;
        private string comentario;

        public Calificacion()
        {
        }

        public string Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }

        public Producto Prod
        {
            get { return prod; }
            set { prod = value; }
        }

        public string NickUsuario
        {
            get { return nickusuario; }
            set { nickusuario = value; }
        }

        public string LinkUsuario
        {
            get { return linkusuario; }
            set { linkusuario = value; }
        }

        public Calificaciones Calification
        {
            get { return calificacion; }
            set { calificacion = value; }
        }

        public string Comentario
        {
            get { return comentario; }
            set { comentario = value; }
        }
    }

    public class PreguntasRespuestas
    {
        private string idpregresp;
        private Producto prod;
        private string textopregunta;
        private string fechapregunta;
        private string textorespuesta;
        private string fecharespuesta;

        public PreguntasRespuestas()
        {
        }

        public string IDPregResp
        {
            get { return idpregresp; }
            set { idpregresp = value; }
        }
        public Producto Prod
        {
            get { return prod; }
            set { prod = value; }
        }
        public string TextoPregunta
        {
            get { return textopregunta; }
            set { textopregunta = value; }
        }
        public string FechaPregunta
        {
            get { return fechapregunta; }
            set { fechapregunta = value; }
        }
        public string TextoRespuesta
        {
            get { return textorespuesta; }
            set { textorespuesta = value; }
        }
        public string FechaRespuesta
        {
            get { return fecharespuesta; }
            set { fecharespuesta = value; }
        }
    }


    public class Parametros
    {
        private bool productos;
        private bool preguntas;
        private bool calificaciones;
        private CantidadCalificaciones cantidad;

        public Parametros()
        {
            this.productos = false;
            this.preguntas = false;
            this.calificaciones = false;
        }

        public bool Productos
        {
            get { return productos; }
            set { productos = value; }
        }

        public bool Preguntas
        {
            get { return preguntas; }
            set { preguntas = value; }
        }

        public bool Calificaciones
        {
            get { return calificaciones; }
            set { calificaciones = value; }
        }

        public CantidadCalificaciones Cantidad
        {
            get { return cantidad; }
            set { cantidad = value; }
        }
    }
    #endregion
}